def quick_sort(nums: list[int]) -> list[int]:
    if len(nums) <= 1:
        return nums.copy()  # 返回副本，避免意外引用原数组
    
    pivot = nums[0]
    
    left = [x for x in nums if x < pivot]    # 小于基准的元素
    middle = [x for x in nums if x == pivot] # 等于基准的元素（处理重复）
    right = [x for x in nums if x > pivot]   # 大于基准的元素
    
    return quick_sort(left) + middle + quick_sort(right)
